/*!
 * \file main.cpp
 * \project	WonderTrader
 *
 * \author Wesley
 * \date 2020/03/30
 * 
 * \brief WonderTrader运行器主程序入口文件
 *		  本文件实现了WonderTrader系统的主程序入口点
 *		  负责创建和启动WtRunner运行器实例
 *		  支持Windows平台的内存转储功能，便于调试和错误分析
 *		  提供完整的系统启动流程：初始化->配置->运行
 */

#include "WtRunner.h"

#include "../WTSTools/WTSLogger.h"
#include "../Share/IniHelper.hpp"

#ifdef _MSC_VER
#include "../Common/mdump.h"
#endif

//#include <vld.h>

/**
 * @brief 主程序入口点
 * @return 程序退出码，0表示正常退出
 * @details WonderTrader系统的主程序入口，执行以下流程：
 *          1. 启用内存转储功能（Windows平台）
 *             - 当程序崩溃时自动生成dump文件
 *             - 便于后续调试和问题分析
 *          2. 创建WtRunner运行器实例
 *          3. 初始化系统
 *             - 初始化日志系统
 *             - 设置程序安装目录
 *             - 准备运行环境
 *          4. 配置系统
 *             - 加载配置文件
 *             - 初始化各个组件
 *             - 配置交易引擎
 *          5. 运行系统
 *             - 启动交易系统
 *             - 进入主循环（同步模式）
 *          
 *          注意：程序以同步模式运行，会阻塞在run()调用直到系统停止
 */
int main()
{
#ifdef _MSC_VER
	// 启用Windows平台内存转储功能
	// 当程序异常崩溃时，自动生成WtRunner.exe.dmp文件
	// 第二个参数true表示生成完整转储信息
	CMiniDumper::Enable("WtRunner.exe", true);
#endif

	// 创建WonderTrader运行器实例
	WtRunner runner;
	
	// 初始化系统基础组件
	runner.init();

	// 加载配置并初始化各个模块
	runner.config();

	// 启动交易系统（同步模式，阻塞运行）
	runner.run(false);
	
	return 0;
}

